package com.kj.tms.system.controller.menu;

import com.kj.tms.common.bean.dto.ReturnData;
import com.kj.tms.common.utils.constant.Consts;
import com.kj.tms.pri.system.menu.dto.ModuleDto;
import com.kj.tms.pri.system.menu.service.ModuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * com.hongtu.tms.system.controller.module
 * 模快信息维护
 *
 * @auther yangruidong
 * @create 2017/10/17
 */
@Controller
@RequestMapping("/system/module")
public class ModuleController{

    @Autowired
    private ModuleService moduleServiceImpl;

    /**
     * 模块展现首页
     *
     * @return
     * @throws Exception
     */
    @RequestMapping("/index")
    public String index() {
        return "system/module/index";
    }

    /**
     * @Title: toAdd
     * @Description: 跳转到新增模块
     */
    @RequestMapping("/toAdd")
    public String toAdd() {
        return "system/module/add";
    }

    /**
     * @Title: toUpdate
     * @Description: 跳转到更新模块
     */
    @RequestMapping("/toUpdate")
    public String toUpdate() {
        return "system/module/update";
    }

    /**
     * @Title: queryByList
     * @Description: 查询列表数据
     * @param moduleDto
     * @throws
     * @return ReturnData 返回类型
     */
    @RequestMapping("/queryByList")
    public
    @ResponseBody
    ReturnData queryByList(ModuleDto moduleDto) {
        return moduleServiceImpl.queryByList(moduleDto);
    }

    /**
     * @method [checkModuleName]
     * @description [校验模块名称]
     * @author [yangruidong]
     * @param moduleDto
     * @return ReturnData
     * @throws
     * @version 1.0
     * @date
     */
    @RequestMapping("/checkModuleName")
    public
    @ResponseBody
    ReturnData checkModuleName(ModuleDto moduleDto) {
        return moduleServiceImpl.checkModuleName(moduleDto);
    }

    /**
     * @param moduleDto
     * @return
     * @throws Exception
     * @Title: save
     * @Description: 保存系统模块
     */
    @RequestMapping("/save")
    public
    @ResponseBody
    ReturnData save(ModuleDto moduleDto) {
        return   moduleServiceImpl.save(moduleDto);
    }

    /**
     * @param @param moduleDto
     * @return void 返回类型
     * @throws Exception
     * @Title: delete
     * @Description: 删除
     */
    @RequestMapping("/delete")
    public
    @ResponseBody
    ReturnData delete(ModuleDto moduleDto){
        if (moduleServiceImpl.isParent(moduleDto)) {
            return new ReturnData("0", "子节点非空~", null);
        }
        //删除数据
        return moduleServiceImpl.delete(moduleDto);
    }

    /**
     * @param moduleDto
     * @return void 返回类型
     * @throws
     * @Title: updateValidMark
     * @Description: 启用/禁用模块
     */
    @RequestMapping("/updateValidMark")
    public
    @ResponseBody
    ReturnData updateValidMark(ModuleDto moduleDto){
        return moduleServiceImpl.updateValidMark(moduleDto);
    }

    /**
     * @param roleId  角色id
     * @return void 返回类型
     * @throws
     * @Title: getTreeData
     * @Description: 查询菜单模块树
     */
    @RequestMapping("/getTreeData")
    public
    @ResponseBody
    ReturnData getTreeData(@RequestParam(value = "roleId",required = false) String roleId){
        return new ReturnData(Consts.SUCCESS, "success", moduleServiceImpl.getTreeData(roleId));
    }


}
